home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 1 / Amiga Tools.iso / egs-tools / egs_demo-version / egs_devels / examples / stack_language / eventloop.c next >
Text File  |  1994-06-06  |  4KB  |  138 lines

  1. /*
  2. **  Author: Markus van Kempen
  3. **  Date  : 8 November 92
  4. **
  5. **
  6. **  This routine handle events (like Commodore)
  7. **
  8. **  (c) by VIONA-Development 1992/93
  9. **
  10. */
  11.  
  12.  
  13. BOOL HandleEvents(struct EI_Window *fenster)
  14. {
  15.  BOOL raus = FALSE;          /* TRUE, if the function should exit */
  16.  ULONG GetBits,WaitBits;     /* MessagePort bits */
  17.  EI_EIntuiMsgPtr  imess;     /* Message structure pointer */
  18.  
  19.  WaitBits = (1L <<  fenster->UserPort->mp_SigBit) | SIGBREAKF_CTRL_C;
  20.  
  21.  while (!raus)
  22.  {
  23.   GetBits = Wait(WaitBits);
  24.  
  25.   if (GetBits & SIGBREAKF_CTRL_C) /* CTRL-C pressed */
  26.   {
  27.         raus = TRUE;
  28.   }
  29.  
  30.   while ((imess = (struct EI_EIntuiMsg *)GetMsg(fenster->UserPort)) != NULL)
  31.   {
  32.         switch (imess->Class)
  33.         {
  34.    case EI_iRAWKEY:
  35.                    printf("iRawKey\n");
  36.                    ReplyMsg((struct Message *)imess);
  37.                    break;
  38.  
  39.    case EI_iCLOSEWINDOW:
  40.  
  41.                   printf("iClose\n");
  42.  
  43.     ReplyMsg ((struct Message *)imess);
  44.     raus = TRUE;
  45.     break;
  46.  
  47.           case EI_iMENUVERIFY:
  48.                     printf("iMenuVerify\n");
  49.         ReplyMsg ((struct Message *)imess);
  50.                     break;
  51.  
  52.           case EI_iMENUPICK:
  53.  
  54.                     printf("iMenu\n");
  55.                     printf("Code = %lx\n",imess->Code);
  56.                     /*
  57.  
  58.                         switch(imess->Code)
  59.                         {
  60.  
  61.                         }
  62.  
  63.  
  64.                      */
  65.                     ReplyMsg ( (struct Message *)imess );
  66.                     break;
  67.  
  68.           case EI_iSIZEVERIFY:
  69.  
  70.                     printf("VerifySizing ! \n");
  71.  
  72.                     EI_RemoveGadget(Window,(struct EI_Gadget *)&myBoolGadget);
  73.  
  74.                     ReplyMsg ( (struct Message *)imess );
  75.                     break;
  76.  
  77.           case EI_iNEWSIZE:
  78.  
  79.                     printf("Sizing ! \n");
  80.  
  81.                     EI_LockIntuition();
  82.  
  83.                     myBoolGadget.Class.Width  = Window->Width-
  84.                     myBoolGadget.Class.LeftEdge*2;
  85.                     myBoolGadget.Class.Height = Window->Height-
  86.                     myBoolGadget.Class.TopEdge*2; /* for the border */
  87.  
  88.                     EI_AddGadget(Window,(struct EI_Gadget *)&myBoolGadget);
  89.  
  90.                     EI_UnlockIntuition();
  91.  
  92.                     ReplyMsg((struct Message *)imess);
  93.                     break;
  94.  
  95.           case EI_iACTIVEWINDOW:
  96.                     printf("Active ! \n");
  97.                     ReplyMsg((struct Message *)imess);
  98.                     break;
  99.  
  100.           case EI_iMOUSEMOVE:
  101.                     printf("    MouseMove ! \n");
  102.                     printf("    MouseX = %d \n",imess->MouseX);
  103.                     printf("    MouseY = %d \n",imess->MouseY);
  104.  
  105.                     ReplyMsg((struct Message *)imess);
  106.                     break;
  107.  
  108.           case  EI_iMOUSEBUTTONS:
  109.                     printf("MouseButtons\n");
  110.                     ReplyMsg((struct Message *)imess);
  111.                     break;
  112.  
  113.           case  EI_iINACTIVEWINDOW:
  114.                     printf("Inactive \n");
  115.                     ReplyMsg((struct Message *)imess);
  116.                     break;
  117.  
  118.           case  EI_iVANILLAKEY:
  119.                     printf("Vanilla \n");
  120.  
  121.                     break;
  122.  
  123.           case  EI_iGADGETUP       :
  124.                     printf("Gadget \n");
  125.                     ReplyMsg((struct Message *)imess);
  126.                     break;
  127.  
  128.          default:
  129.     printf (" Unknown message %x & %x\n ",imess->Class,imess->Code);
  130.                   ReplyMsg((struct Message *)imess);
  131.  
  132.         }
  133.   }
  134.  }
  135.  return raus;
  136. }
  137.  
  138.